草庐IT

Java TLS-PSK 套接字

全部标签

c++ - 如何对 BSD 套接字进行单元测试

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭5年前。Improvethisquestion我正在使用BSD套接字在Ubuntu中编写基于服务器/客户端的C++应用程序。我使用GoogleC++测试框架作为我的单元测试框架。我想知道有没有一种方法可以在我的单元测试中创建服务器和客户端,这样我就可以测试服务器的监听/接受,以及双方的发送/接收。问题是,如果我要测试服务器的套接字接受(在监听端口之后),我怎样才能让一些客户端在这个测试中连接到它?我可以使用多线程让客户端连接到在同一TEST()(或T

【Linux】 网络编程套接字

目录预备知识网络字节序 网络字节序和主机字节序转换的库函数socket编程接口socket常见APIsockaddr结构套接字的种类预备知识1.在IP数据包头部中,有两个IP地址,分别叫做源IP地址和目的IP地址。2.端口号:是传输层协议的内容          端口号是一个2字节16位的整数。        端口号用来标识一个进程,告诉操作系统,当前的这个数据要交给哪个进程处理。    IP地址能够唯一标识一台主机,端口号能够标识该主机上的唯一一个进程,因此IP地址 +端口号能够标识网络上的某一台主机的某一个进程。    一个端口号只能被一个进程占用。问:进程ID即PID表示唯一一个进程,此

五:优雅断连 & 域名<=>IP & 套接字多种选项

1优雅地断开套接字连接1.1基于TCP的半关闭TCP断开连接过程比建立连接过程更重要,因为连接过程一般不会出问题,但是断开连接过程有可能发生预想不到的情况,所以应该了解半关闭(Half-close)。单方面断开带来的问题Linux的close函数和Windows的closesocket函数意味着完全断开连接,既不能传输数据,也不能接收。因此,一些情况下,某一方单独断开连接显得不太优雅。例如:主机A和主机B进行通信,A向B发送完数据后,调用close断开连接,此时A将无法在发送和接收数据,那么B发送给A的数据也只能销毁了。套接字和流两台主机通过套接字建立连接后进行可交换数据状态,又称“流形成的状

java - Java和C++之间的套接字通信

我正在尝试在Java服务器和C++客户端之间建立连接。但是当我在客户端读取数据时,我总是有相同的奇怪字符(¬í)。我试图改变双方的编码,但没有任何效果。这是我的Java代码:publicclassServeur{publicstaticvoidmain(String[]args)throwsException{finalintPORT=13370;try{ServerSocketservice=newServerSocket(PORT);Socketconnection=service.accept();PrintWriterpw=newPrintWriter(connection.g

c++ - 当数据存在时,使用 select() 检查套接字返回 0

我的套接字类已经工作了一段时间,但我想使用select()添加超时。看起来很简单,但我总是从select()返回0。我什至删除了select()检查,因此它读取数据而不管select()和数据被读取,但select()仍然报告数据不存在。关于如何让select()停止对我撒谎的任何线索?我还将套接字设置为非阻塞。谢谢。代码:charbuf[MAXRECV+1];s="";memset(buf,0,MAXRECV+1);structtimevaltv;intretval;fd_setSockets;FD_ZERO(&Sockets);FD_SET(m_sock,&Sockets);//P

c++ - 从文件描述符实例化套接字对象的非侵入式方法

Python中目前存在一个套接字库:引用:http://docs.python.org/library/socket.html但是,这个库不包含基于文件描述符引用现有套接字的功能。我目前正在为C++库开发Python绑定(bind),它首先打开一个套接字,并且需要一种方法在事后在Python中引用这个打开的套接字。请记住,这是在Windows上进行的(我正在使用忽略文件句柄的跨平台抽象层)。代码类似这样:fd=connect(...)#filedescriptoros.read(fd,buffer)os.close(fd)我正在寻找一种方法来实际定义基于文件描述符的套接字对象,而不会在

c++ - 使用带有 Boost ASIO 的 UDP 的文件套接字 I/O

所以我尝试在我的FreeBSD服务器上使用boost.log和系统日志接收器,它运行rsyslogd并在文件套接字上监听UDP数据。显然这适用于FreeBSD领域。事实上,文件套接字是一个dgram套接字(telnet到文件套接字是在FreeBSD中工作的另一件事):$telnet/var/run/logTrying/var/run/log.../var/run/log:Protocolwrongtypeforsocket无论如何,boost.log不会与文件套接字通信,只会与IP地址通信。我的计划是在我的应用程序中继到文件套接字的常规基于IP的UDP服务器之间代理信息。从理论上讲,这

C++ TCP套接字发送速度

我使用简单的锁定TCP套接字将消息发送到远程服务器,我遇到的问题是对于每条消息,发送它所花费的时间非常不同。这是我得到的(一些例子):BytesSent:217,Time:34.3336usecBytesSent:217,Time:9.9107usecBytesSent:226,Time:20.1754usecBytesSent:226,Time:38.2271usecBytesSent:217,Time:33.6257usecBytesSent:217,Time:12.7424usecBytesSent:217,Time:21.5912usecBytesSent:217,Time:3

c++ - boost 套接字的序列化

我想使用boost序列化来使用套接字通过网络发送结构。我查看了他们的教程(http://www.boost.org/doc/libs/1_60_0/libs/serialization/doc/index.html),但它只显示了保存和加载到文件。我已经修改了我的结构以包含serialize()函数,并尝试使用教程中使用的相同技术来处理我的套接字文件,但没有成功:#include#includeintsock=socket()...boost::archive::binary_oarchiveoa(sock);oaerror:nomatchingfunctionforcallto‘bo

c# - 为什么异步回调套接字方法通常是静态的?

为什么异步回调套接字方法通常是静态的?(假设我了解静态类、方法和数据对象)。如果使用这些作为实例方法编写一个类,是否会出现基本的设计/逻辑错误?有什么特别需要注意避免的吗? 最佳答案 没有特定的理由认为它们应该是静态的。这完全取决于您的设计。如果回调需要访问类中的成员,那么它可以声明为实例成员。但是,您需要确保正确同步对实例成员的访问,因为可以从不同线程并发调用回调。我想您看过的所有示例都通过IAsyncResult.AsyncState将所需数据传递给回调,因此不需要来自类的其他信息。如果你能做到这一点,它可以简化你的代码,因为你